package tec;

public class TestPassagerLunatique extends TestPassagerAbstrait{
	
	protected PassagerAbstrait creerPassager(String nom, int destination)
	{
		return new PassagerLunatique(nom, destination);
	}
	
	public void lancer() throws TecInvalidException
	{
		this.type_s = new String("Lunatique");
		super.lancer();
		System.out.print("."); super.nbTest++;
		testNouvelArret();
		System.out.print("."); nbTest++;
		testMonterDans();
		System.out.println("OK (" + super.nbTest + ")");
	}
	protected void testNouvelArret() {
		Passager test1 = new PassagerLunatique("Testeur", 10);
		test1.accepterPlaceDebout();
		Bus bus = new FauxBus();
		
		test1.nouvelArret(bus, 1);
		assert "demande changer assis" == ((FauxBus)bus).messages.getLast() : "s'assoir";  
		test1.accepterPlaceAssise();
		assert test1.estDebout() == false;
		assert test1.estAssis() == true;
		test1.nouvelArret(bus, 2);
		assert "demande changer debout" == ((FauxBus)bus).messages.getLast() : "se lever";  
		test1.accepterPlaceDebout();
		assert test1.estDebout() == true;
		assert test1.estAssis() == false;
		test1.nouvelArret(bus, 3);
		assert "demande changer assis" == ((FauxBus)bus).messages.getLast() : "s'assoir";  
		test1.accepterPlaceAssise();
		assert test1.estDebout() == false;
		assert test1.estAssis() == true;
		((FauxBus) bus).clear();
		test1.nouvelArret(bus, 4);
		assert "demande changer debout" == ((FauxBus)bus).messages.getLast() : "se lever";  
	
	}
	
	protected void testMonterDans() throws TecInvalidException {
		Passager test1 = new PassagerLunatique("Testeur", 5);
		Bus bus = new FauxBus();
		
		((Usager) test1).monterDans((Transport) bus);
		assert "demande place debout" == ((FauxBus)bus).messages.getLast() : "demande debout"; 
		
		((Usager) test1).monterDans((Transport) bus);
		assert "demande place debout" == ((FauxBus)bus).messages.getLast() : "ne demande pas assis"; 

	}
}

